﻿using Uniforax.Core.GameObjects;
using Uniforax.Core.WorldFramework;

namespace Uniforax.Core.Common
{
    // 只有在移动的时候才会传递上下文。
    public class BaseMovementContext
    {
        public bool IsCancelled { get; set; }
        public BaseGameObject GameObject { get; set; }
    }

    public class GameObjectLeaveGridMovementContext : BaseMovementContext
    {
        public Grid OldGrid { get; set; }
    }

    public class GameObjectEnterGridMovementContext : BaseMovementContext
    {
        public Grid NewGrid { get; set; }
    }

    public class GameObjectPlaceGridMovementContext : BaseMovementContext
    {
        public Grid CurrentGrid { get; set; }
    }
}
